package com.cardone.common.dto;

import lombok.Getter;
import lombok.Setter;
import lombok.experimental.Accessors;

/**
 * 返回值封装
 *
 * @author yaoht
 *
 * @param <T>
 */
@Getter
@Setter
@Accessors(chain = true)
public class ReturnDataDto<T> {
	/**
	 * 实例化
	 *
	 * @return 返回值封装
	 */
	public static <T> ReturnDataDto<T> newReturnData() {
		final ReturnDataDto<T> returnData = new ReturnDataDto<T>();

		returnData.setCode(0);

		return returnData;
	}

	/**
	 * 代码
	 */
	private String code;

	/**
	 * 数据
	 */
	private T data;

	/**
	 * 消息
	 */
	private String message;

	/**
	 * 类别代码
	 */
	private String typeCode;

	/**
	 * 设置
	 *
	 * @param code
	 *          代码
	 * @return 返回值封装
	 */
	public ReturnDataDto<T> setCode(final Integer code) {
		this.code = String.valueOf(code);

		return this;
	}

	/**
	 * 设置
	 *
	 * @param code
	 *          代码
	 * @return 返回值封装
	 */
	public ReturnDataDto<T> setCode(final String code) {
		this.code = code;

		return this;
	}
}
